home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Point;
- import java.awt.image.ColorModel;
- import java.awt.image.MemoryImageSource;
- import java.awt.image.PixelGrabber;
- import java.util.NoSuchElementException;
- import java.util.StringTokenizer;
-
- class Utils {
- public static int SkipSpaces(String var0, int var1) {
- if (var0 != null && var0 != "" && var1 >= 0 && var1 < var0.length()) {
- char var2 = var0.charAt(var1);
-
- while(var2 == ' ') {
- ++var1;
- if (var1 < var0.length()) {
- var2 = var0.charAt(var1);
- } else {
- var2 = 0;
- }
- }
- }
-
- return var1;
- }
-
- public static boolean StateTest(int var0, int var1) {
- return (var0 & var1) > 0;
- }
-
- public static Point GetPtBetweenPts(int var0, Point var1, Point var2) {
- Point var3 = new Point(0, 0);
- long var4 = (long)Math.abs(var1.x - var2.x);
- System.currentTimeMillis();
- long var6 = (long)Math.abs(var1.y - var2.y);
- double var8 = Math.sqrt((double)(var4 * var4 + var6 * var6));
- if ((double)var0 <= var8) {
- var3.x = (int)(((var8 - (double)var0) * (double)((long)var1.x) + (double)((long)var0 * (long)var2.x)) / var8);
- var3.y = (int)(((var8 - (double)var0) * (double)((long)var1.y) + (double)((long)var0 * (long)var2.y)) / var8);
- } else {
- var3 = var2;
- }
-
- return var3;
- }
-
- public static Image GrabImage(Image var0, int var1, int var2, int var3, int var4) {
- int[] var5 = new int[var3 * var4];
- var5 = GrabPixels(var0, var1, var2, var3, var4);
- if (var5 != null) {
- ColorModel var6 = ColorModel.getRGBdefault();
- Image var7 = Globals.thePresView.createImage(new MemoryImageSource(var3, var4, var6, var5, 0, var3));
- return var7;
- } else {
- return null;
- }
- }
-
- public static int DrawLine(Graphics var0, String var1, CRect var2, int var3, int var4, int var5, int var6, int var7) {
- int var9 = var2.y + var7 + var4 * var5;
- int var8;
- if ((var3 & 4) != 0) {
- var8 = var2.x + (var2.width - var6);
- } else if ((var3 & 2) != 0) {
- var8 = var2.x + (var2.width - var6) / 2;
- } else {
- var8 = var2.x;
- }
-
- if ((var3 & 32) == 0) {
- var0.drawString(var1, var8, var9);
- var0.setXORMode(var0.getColor());
- var0.fillRect(var2.x, var2.y, 1, 1);
- var0.setPaintMode();
- if ((var3 & 8192) != 0) {
- int var10 = var0.getFontMetrics().getMaxDescent();
- int var11 = Math.max(1, var0.getFont().getSize() / 20);
- if (var0.getFont().isBold()) {
- var11 *= 2;
- }
-
- var0.fillRect(var8, var9 + var10 / 2, var6, var11);
- }
-
- if ((var3 & 'ΦÇÇ') != 0) {
- int var12 = var0.getFontMetrics().getMaxAscent();
- int var13 = Math.max(1, var0.getFont().getSize() / 20);
- if (var0.getFont().isBold()) {
- ++var13;
- }
-
- var0.fillRect(var8, var9 - (var12 / 3 + var13 / 2), var6, var13);
- }
- }
-
- return var8;
- }
-
- public static String MapFont(String var0) {
- new String();
- String var1;
- if (var0.indexOf("Courier") == -1 && var0.indexOf("courier") == -1) {
- if (var0.indexOf("Times") == -1 && var0.indexOf("times") == -1) {
- var1 = "Helvetica";
- } else {
- var1 = "TimesRoman";
- }
- } else {
- var1 = "Courier";
- }
-
- return var1;
- }
-
- public static int StateSet(int var0, int var1) {
- var0 |= var1;
- return var0;
- }
-
- public static void Wait(int var0) {
- try {
- Thread.sleep((long)var0);
- } catch (InterruptedException var1) {
- }
- }
-
- public static String InsertVariablesInString(String var0, boolean var1) {
- CVariable var2 = null;
- String var3 = new String(var0);
- boolean var5 = false;
- if (var1 && var0.indexOf("\\{") != -1 || !var1 && var0.indexOf(123) != -1) {
- if (Globals.CUR_COURSE != null) {
- try {
- var2 = Globals.CUR_COURSE.m_VariableTable.m_VariableList.GetHead();
- } catch (NoSuchElementException var9) {
- var5 = true;
- }
-
- while(!var5) {
- if (var2 != null) {
- String var4;
- if (var1) {
- var4 = new String("\\{" + var2.GetName() + "\\}");
- } else {
- var4 = new String("{" + var2.GetName() + "}");
- }
-
- var3 = InsertStringInString(var3, var4, var2.GetVariableDataAsString());
- }
-
- try {
- var2 = Globals.CUR_COURSE.m_VariableTable.m_VariableList.GetNext();
- } catch (NoSuchElementException var8) {
- var5 = true;
- }
- }
- }
-
- var2 = null;
- var5 = false;
-
- try {
- var2 = Globals.thePresView.m_VariableTable.m_VariableList.GetHead();
- } catch (NoSuchElementException var7) {
- var5 = true;
- }
-
- while(!var5) {
- if (var2 != null) {
- String var11;
- if (var1) {
- var11 = new String("\\{" + var2.GetName() + "\\}");
- } else {
- var11 = new String("{" + var2.GetName() + "}");
- }
-
- var3 = InsertStringInString(var3, var11, var2.GetVariableDataAsString());
- }
-
- try {
- var2 = Globals.thePresView.m_VariableTable.m_VariableList.GetNext();
- } catch (NoSuchElementException var6) {
- var5 = true;
- }
- }
- }
-
- return var3;
- }
-
- public static String InsertVariablesInString(String var0) {
- return InsertVariablesInString(var0, false);
- }
-
- public static String GetLine(String var0, int var1) {
- String var2 = null;
- int var5 = 0;
- int var4 = 0;
-
- int var3;
- for(var3 = 0; var5 != var1 && (var4 = var0.indexOf("\r\n", var3)) != -1; ++var5) {
- var3 = var4 + 2;
- }
-
- if (var5 == var1) {
- if ((var4 = var0.indexOf("\r\n", var3)) == -1) {
- var4 = var0.length();
- }
-
- var2 = var0.substring(var3, var4);
- }
-
- return var2;
- }
-
- public static void DrawArrowHead(Graphics var0, Point var1, Point var2, int var3, int var4) {
- int[] var5 = new int[3];
- int[] var6 = new int[3];
- int var7 = var3 * 15;
- double var8 = Math.atan2((double)(var2.y - var1.y), (double)(var2.x - var1.x));
- var5[0] = var1.x;
- var6[0] = var1.y;
- Double var10 = new Double((double)var1.x + (double)var7 * Math.cos(var8 + 0.245));
- var5[1] = var10.intValue();
- var10 = new Double((double)var1.y + (double)var7 * Math.sin(var8 + 0.245));
- var6[1] = var10.intValue();
- var10 = new Double((double)var1.x + (double)var7 * Math.cos(var8 - 0.245));
- var5[2] = var10.intValue() + 1;
- var10 = new Double((double)var1.y + (double)var7 * Math.sin(var8 - 0.245));
- var6[2] = var10.intValue() + 1;
- if (var4 == 1) {
- var0.fillPolygon(var5, var6, 3);
- } else {
- var0.drawLine(var5[0], var6[0], var5[1], var6[1]);
- var0.drawLine(var5[0], var6[0], var5[2], var6[2]);
- }
- }
-
- public static int[] GrabPixels(Image var0, int var1, int var2, int var3, int var4) {
- int[] var5 = new int[var3 * var4];
- PixelGrabber var6 = new PixelGrabber(var0, var1, var2, var3, var4, var5, 0, var3);
-
- try {
- var6.grabPixels();
- return var5;
- } catch (InterruptedException var7) {
- return null;
- }
- }
-
- public static int StateClear(int var0, int var1) {
- var0 ^= var1;
- return var0;
- }
-
- public static Image DrawGradientFill(CRect var0, Color var1, Color var2, int var3) {
- CRect var5 = new CRect(var0);
- float var9 = 1.0F;
- float var11 = (float)var1.getRed();
- float var12 = (float)var1.getGreen();
- float var13 = (float)var1.getBlue();
- float var14 = (float)var2.getRed();
- float var15 = (float)var2.getGreen();
- float var16 = (float)var2.getBlue();
- Image var4 = Globals.thePresView.createImage(var5.width, var5.height);
- Graphics var17 = var4.getGraphics();
- float var10;
- if ((var3 & 16) != 0) {
- var10 = (float)var5.height;
- } else if ((var3 & 32) != 0) {
- var10 = (float)var5.width;
- } else if ((var3 & 64) != 0) {
- var10 = (float)Math.min(var5.width / 2 + 1, var5.height / 2 + 1);
- var9 = Math.max((float)var5.width, (float)var5.height) / Math.min((float)var5.width, (float)var5.height);
- } else {
- var5.x = -var5.width / 4;
- var5.y = -var5.height / 4;
- var5.width += var5.width / 2;
- var5.height += var5.height / 2;
- var10 = (float)Math.min(var5.width / 2 + 1, var5.height / 2 + 1);
- var9 = Math.max((float)var5.width, (float)var5.height) / Math.min((float)var5.width, (float)var5.height);
- }
-
- for(int var18 = 0; (float)var18 < var10; ++var18) {
- int var6 = (int)(var11 + (var14 - var11) / (var10 - 1.0F) * (float)var18);
- int var7 = (int)(var12 + (var15 - var12) / (var10 - 1.0F) * (float)var18);
- int var8 = (int)(var13 + (var16 - var13) / (var10 - 1.0F) * (float)var18);
- Color var19 = new Color(var6, var7, var8);
- var17.setColor(var19);
- if ((var3 & 16) != 0) {
- var17.drawLine(0, var18, var5.width, var18);
- } else if ((var3 & 32) != 0) {
- var17.drawLine(var18, 0, var18, var5.height);
- } else if ((var3 & 64) != 0) {
- if (var5.width > var5.height) {
- var17.fillRect((int)(var9 * (float)var18), var18, var5.width - (int)(2.0F * var9 * (float)var18), var5.height - 2 * var18);
- } else {
- var17.fillRect(var18, (int)(var9 * (float)var18), var5.width - 2 * var18, var5.height - (int)(2.0F * var9 * (float)var18));
- }
- } else if (var5.width > var5.height) {
- var17.fillOval(var5.x + (int)(var9 * (float)var18), var5.y + var18, var5.width - (int)(2.0F * var9 * (float)var18), var5.height - 2 * var18);
- } else {
- var17.fillOval(var5.x + var18, var5.y + (int)(var9 * (float)var18), var5.width - 2 * var18, var5.height - (int)(2.0F * var9 * (float)var18));
- }
- }
-
- return var4;
- }
-
- public static int SetVariables(String var0, boolean var1) {
- int var2 = 0;
- String var3 = InsertVariablesInString(var0);
- if (Globals.CUR_COURSE != null) {
- var2 = Globals.CUR_COURSE.m_VariableTable.SetVariables(var3, var1);
- }
-
- return var2;
- }
-
- public static int GetDistance(Point var0, Point var1) {
- long var2 = (long)Math.abs(var0.x - var1.x);
- long var4 = (long)Math.abs(var0.y - var1.y);
- return (int)Math.sqrt((double)(var2 * var2 + var4 * var4));
- }
-
- public static CVariable SearchAllVariables(int var0) {
- CVariable var1 = null;
- if (Globals.CUR_COURSE != null) {
- var1 = Globals.CUR_COURSE.m_VariableTable.FindVariable(var0);
- }
-
- if (var1 == null) {
- var1 = Globals.thePresView.m_VariableTable.FindVariable(var0);
- }
-
- return var1;
- }
-
- public static CVariable SearchAllVariables(String var0) {
- CVariable var1 = null;
- if (Globals.CUR_COURSE != null) {
- var1 = Globals.CUR_COURSE.m_VariableTable.FindVariable(var0);
- }
-
- if (var1 == null) {
- var1 = Globals.thePresView.m_VariableTable.FindVariable(var0);
- }
-
- return var1;
- }
-
- public static String InsertStringInString(String var0, String var1, String var2) {
- String var3;
- String var4;
- int var6;
- if (var0.length() != 0 && var1.length() != 0 && var0.indexOf(var1.charAt(0)) != -1) {
- for(int var7 = var1.length(); (var6 = var0.indexOf(var1)) != -1; var0 = var3.concat(var2).concat(var4)) {
- int var5 = var0.length();
- if (var6 > 0) {
- var3 = var0.substring(0, var6);
- } else {
- var3 = "";
- }
-
- if (var6 + var7 < var5) {
- var4 = var0.substring(var6 + var7, var5);
- } else {
- var4 = "";
- }
- }
- }
-
- return var0;
- }
-
- public static CRect DrawText(Graphics var0, String var1, CRect var2, int var3) {
- byte var4 = 0;
- byte var5 = 1;
- byte var6 = 2;
- byte var7 = 3;
- byte var8 = 4;
- byte var9 = 5;
- byte var10 = 6;
- String var14 = "";
- CRect var15 = new CRect();
- boolean var16 = false;
- boolean var17 = false;
- boolean var18 = false;
- int var19 = 0;
- int var20 = 0;
- int var21 = 0;
- int var26 = 0;
- Graphics var27 = var0.create();
- var27.clipRect(var2.x, var2.y, var2.width, var2.height);
- var15.x = var2.x + var2.width;
- var15.y = var2.y;
- FontMetrics var11 = var27.getFontMetrics();
- int var25 = var11.charWidth(' ');
- int var22 = var11.getAscent();
- int var23 = var11.getHeight();
- StringTokenizer var12 = new StringTokenizer(var1, " \t\r\n", true);
-
- while(var12.hasMoreTokens() && var19 * var23 <= var2.height) {
- String var13 = var12.nextToken();
- var21 = var11.stringWidth(var13);
- var16 = false;
- byte var24;
- if (var13.equals(" ")) {
- if (var18) {
- if (var17) {
- var24 = var4;
- } else {
- var17 = true;
- var24 = var6;
- var21 += var25;
- }
- } else {
- var24 = var4;
- var18 = true;
- var17 = false;
- var16 = true;
- }
- } else if (var13.equals("\r")) {
- var24 = var8;
- var16 = true;
- } else if (var13.equals("\n")) {
- if (var20 != 0) {
- var15.width = Math.max(var15.width, Math.min(var20, var2.width));
- var26 = DrawLine(var27, var14, var2, var3, var19, var23, var20, var22);
- var15.x = Math.min(var15.x, Math.max(var26, var2.x));
- var20 = 0;
- var14 = "";
- }
-
- var24 = var9;
- ++var19;
- var16 = true;
- } else if (var13.equals("\t")) {
- var24 = var10;
- } else if (var18) {
- if (var17) {
- var18 = false;
- var24 = var5;
- } else {
- var18 = false;
- var17 = true;
- var24 = var7;
- var21 += var25;
- }
- } else {
- var24 = var5;
- }
-
- while(!var16) {
- if (var20 + var21 <= var2.width) {
- if (var24 != var6 && var24 != var7) {
- if (var24 == var10) {
- var13 = " ";
- }
- } else if (var20 == 0) {
- var21 -= var25;
- } else {
- var13 = " " + var13;
- }
-
- var14 = var14 + var13;
- var20 += var21;
- var16 = true;
- } else {
- if (var20 == 0) {
- if (var24 == var6 || var24 == var7) {
- var21 -= var25;
- }
-
- var14 = var14 + var13;
- var20 += var21;
- var16 = true;
- }
-
- var15.width = Math.max(var15.width, Math.min(var20, var2.width));
- var26 = DrawLine(var27, var14, var2, var3, var19, var23, var20, var22);
- var15.x = Math.min(var15.x, Math.max(var26, var2.x));
- var20 = 0;
- ++var19;
- var14 = "";
- }
- }
- }
-
- if (var20 > 0) {
- var15.width = Math.max(var15.width, Math.min(var20, var2.width));
- var26 = DrawLine(var27, var14, var2, var3, var19, var23, var20, var22);
- var15.x = Math.min(var15.x, Math.max(var26, var2.x));
- var20 = 0;
- ++var19;
- var14 = "";
- }
-
- if ((var3 & 32) != 0) {
- var15.height = var19 * var23;
- }
-
- var19 = 0;
- return var15;
- }
-
- public static boolean CheckExpression(String var0, boolean var1) {
- boolean var2 = false;
- String var3 = InsertVariablesInString(var0);
- if (Globals.CUR_COURSE != null) {
- var2 = Globals.CUR_COURSE.m_VariableTable.CheckExpression(var3, var1);
- }
-
- return var2;
- }
- }
-